package com.cy.stone.system.infrastructure.database.entity;

import com.cy.stone.common.base.BaseEntity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

/**
 * 菜单资源表 实体类。
 *
 * @author Wings
 * @since 2023-12-09
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "菜单资源表")
@Table(value = "ST_MENU")
public class MenuEntity extends BaseEntity {

    /**
     * 菜单码
     */
    @Schema(description = "菜单码")
    private String menuCode;

    /**
     * 菜单名称
     */
    @Schema(description = "菜单名称")
    private String menuName;

    /**
     * 父级ID
     */
    @Schema(description = "父级ID")
    private String parentId;

    /**
     * 显示顺序
     */
    @Schema(description = "显示顺序")
    private Integer orderNum;

    /**
     * 路由地址
     */
    @Schema(description = "路由地址")
    private String path;

    /**
     * 组件路径
     */
    @Schema(description = "组件路径")
    private String component;

    /**
     * 路由参数
     */
    @Schema(description = "路由参数")
    private String queryParam;

    /**
     * 是否外链【0-否 1-是】
     */
    @Schema(description = "是否外链【0-否 1-是】")
    private String isFrame;

    /**
     * 是否缓存【0-否 1-是】
     */
    @Schema(description = "是否缓存【0-否 1-是】")
    private String isCache;

    /**
     * 菜单类型【C-目录 M-菜单 B-按钮】
     */
    @Schema(description = "菜单类型【C-目录 M-菜单 B-按钮】")
    private String menuType;

    /**
     * 显示状态【0-不显示 1-显示】
     */
    @Schema(description = "显示状态【0-不显示 1-显示】")
    private String visible;

    /**
     * 权限码
     */
    @Schema(description = "权限码")
    private String perms;

    /**
     * 图标标识
     */
    @Schema(description = "图标标识")
    private String icon;

}
